<?php
require_once ('Rps.php');
require_once ('OrgaoGerador.php');
require_once ('Prestador.php');



/**
 * @version 1.0
 * @created 09-out-2013 22:01:12
 */
class Nfse
{

	private $Versao;
	private $Numero;
	private $CodigoVerificacao;
	private $Id;
	private $OutrasInformacoes;
	private $NfseSubstituidora; //Nfse
	private $NfseCancelamento;	//PedidoCancelamento
	private $BaseCalculo;
	private $Aliquota;
	private $ValorIss;
	private $ValorLiquidoNfse;
	private $ValorCredito;
	private $PrestadorServico; //Prestador
	private $OrgaoGerador; //OrgaoGerador
	private $DeclaracaoPrestacaoServico; //Rps
	private $DataEmissao;
	
	
	


	function __construct()
	{
		$this->Versao	=	"2.01";
	}

	function __destruct()
	{
	}


	public function __get($propriedade)
	{
		return $this->$propriedade;
	}
	
	public function __set($propriedade, $valor)
	{
		$this->$propriedade	=	$valor;
	}	
	
	
	public function addNfseSubstituidora(Nfse $NfseSubstituidora)
	{
		$this->__set("NfseSubstituidora", $NfseSubstituidora);		
	} 
	
	public function addNfseCancelamento(PedidoCancelamento $NfseCancelamento)
	{
		$this->__set("NfseCancelamento", $NfseCancelamento);
	
	}
	
	
	public function populaDados($dados)
	{
		$this->__set("Numero", $dados["Numero"]);
		$this->__set("CodigoVerificacao", $dados["CodigoVerificacao"]);
		$this->__set("DataEmissao", $dados["DataEmissao"]);
		$this->__set("OutrasInformacoes", $dados["OutrasInformacoes"]);
		$this->__set("ValorCredito", $dados["ValorCredito"]);
		
		$this->__set("BaseCalculo", $dados["ValoresNfse"]["BaseCalculo"]);
		$this->__set("Aliquota", $dados["ValoresNfse"]["Aliquota"]);
		$this->__set("ValorIss", $dados["ValoresNfse"]["ValorIss"]);
		$this->__set("ValorLiquidoNfse", $dados["ValoresNfse"]["ValorLiquidoNfse"]);
		
		$objPrestador=	new Prestador();
		$objPrestador->populaDados($dados["PrestadorServico"]);
		$this->__set("PrestadorServico", $objPrestador);		
				
		$objOrgaoGerador=	new OrgaoGerador();
		$objOrgaoGerador->populaDados($dados["OrgaoGerador"]);
		$this->__set("OrgaoGerador", $objOrgaoGerador);		
				
		$objRps=	new Rps();
		$objRps->populaDados($dados["DeclaracaoPrestacaoServico"]);
		$this->__set("DeclaracaoPrestacaoServico", $objRps);		
		
	}	
	

}
?>